/*
 * food_table餐桌 Dao层增删改查
*/
const baseDao = require('./BaseDao');

module.exports = {

    /**
     * 新增一条记录
     * @param food_table_number       餐桌名
     * @param food_table_action       餐桌使用状态(0为未使用，1为已使用)
     * @param food_table_seat         餐桌座位数(只有整数)
     * @param food_table_usingTime    餐桌预订时间(如果有多表关联，可作为单表设计)
     * @param food_table_type         餐桌类型(包间、大厅等)
     * @param food_table_peoples      就餐人数
     * @param food_table_account      结账状态(0为未结账，1为已结账)
     * @returns                       返回操作的结果
     */
    insertFoodTable(food_table_number, food_table_action, food_table_seat, food_table_usingTime, food_table_type, food_table_peoples, food_table_account){
        return baseDao.handleData('insert into food_table(food_table_number, food_table_action, food_table_seat, food_table_usingTime, food_table_type, food_table_peoples, food_table_account) values(?,?,?,?,?,?,?)',
            [food_table_number, food_table_action, food_table_seat, food_table_usingTime, food_table_type, food_table_peoples, food_table_account]);
    },
    /**
     * 根据传递的用户id删除某一条记录
     * @param id                菜品id
     * @returns                 返回操作的结果
     */
    deleteFoodTableById(id){
        return baseDao.handleData('delete from food_table where id=?',
            [id]);
    },
    /**
     * 根据主键id更新数据
     * @param food_table_number       餐桌名
     * @param food_table_action       餐桌使用状态(0为未使用，1为已使用)
     * @param food_table_seat         餐桌座位数(只有整数)
     * @param food_table_usingTime    餐桌预订时间(如果有多表关联，可作为单表设计)
     * @param food_table_type         餐桌类型(包间、大厅等)
     * @param food_table_peoples      就餐人数
     * @param food_table_account      结账状态(0为未结账，1为已结账)
     * @param id                      餐桌id
     * @returns                       返回操作的结果
     */
    updateFoodTableById(food_table_number, food_table_action, food_table_seat, food_table_usingTime, food_table_type, food_table_peoples, food_table_account, id){
        // 暂时不更新图片
        return baseDao.handleData('update food_table set food_table_number=?, food_table_action=?, food_table_seat=?, food_table_usingTime=?, food_table_type=?, food_table_peoples=?, food_table_account=? where id=?',
            [food_table_number, food_table_action, food_table_seat, food_table_usingTime, food_table_type, food_table_peoples, food_table_account, id]);
    },
    /**
     * 根据主键id修改餐桌状态
     * @param food_table_action       餐桌使用状态(0为未使用，1为已使用)
     * @param food_table_account      结账状态(0为未结账，1为已结账)
     * @param id                      餐桌id
     * @returns                       返回操作的结果
     */
    updateFoodTableAccountById(food_table_account, food_table_action, id){
        // 暂时不更新图片
        // 点餐开始，餐桌状态修改为已使用(0为未使用，1为已使用)，结账状态修改为未结账(0为未结账，1为已结账)
        // 收银处理，餐桌状态修改为未使用(0为未使用，1为已使用)，结账状态修改为已结账(0为未结账，1为已结账)
        return baseDao.handleData('update food_table set food_table_account=?, food_table_action=? where id=?',
            [food_table_account, food_table_action, id]);
    },
    /**
     * 根据餐桌编号 更新 实际用餐用户数
     * @param food_table_number       餐桌编号
     * @param food_table_peoples      实际用餐用户数
     * @returns                       返回操作的结果
     */
    updateFoodTableForPeoples(food_table_number, food_table_peoples){
        // 暂时不更新图片
        return baseDao.handleData('update food_table set food_table_peoples=? where food_table_number=?',
            [food_table_peoples, food_table_number]);
    },
    /**
     * 根据餐桌id 清除用餐人数
     * @param food_table_id       餐桌id
     * @returns                       返回操作的结果
     */
    updateFoodTableForClearPeoples(food_table_id){
        // 暂时不更新图片
        return baseDao.handleData('update food_table set food_table_peoples=0 where id=?',
            [food_table_id]);
    },
    /**
     * 查询所有的数据
     * @returns            返回操作的结果
     */
    selectAllFoodTable(){
        return baseDao.handleData('select id, food_table_number, food_table_action, food_table_seat, food_table_usingTime, food_table_type, food_table_peoples, food_table_account from food_table', null);
    },
    /**
     * 基于一个主键id查询一条记录
     * @param id          主键id
     * @returns           返回操作的结果
     */
    selectFoodTableById(id){
        return baseDao.handleData('select id, food_table_number, food_table_action, food_table_seat, food_table_usingTime, food_table_type, food_table_peoples, food_table_account from food_table where id=?',
            [id]);
    },
    /**
     * 基于一个编号查询一条记录
     * @param food_table_number       编号
     * @returns                       返回操作的结果
     */
    selectFoodTableByNumber(food_table_number){
        return baseDao.handleData('select id, food_table_number, food_table_action, food_table_seat, food_table_usingTime, food_table_type, food_table_peoples, food_table_account from food_table where food_table_number=?',
            [food_table_number]);
    },
    /**
     * 根据用户传递模糊名称进行统计个数
     * @param food_table_number        模糊名称
     * @returns                        返回操作的结果
     */
    selectFoodTableCount(food_table_number){
        return baseDao.handleData('select count(*) from food_table where food_table_number like ?',
            ["%" + food_table_number + "%"]);
    },
    /**
     * 基于分页查询每页数据 每页显示10条
     * @param startIndex          起始下标
     * @returns                   返回操作的结果
     */
    selectFoodTableByLimit(startIndex){
        return baseDao.handleData('select id, food_table_number, food_table_action, food_table_seat, food_table_usingTime, food_table_type, food_table_peoples, food_table_account from food_table limit ?,10',
            [startIndex]);
    }
};
